package com.qf.springmvc.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.qf.springmvc.controller.MyDoubleSerializer;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;


@Data
// @JsonInclude(JsonInclude.Include.NON_NULL)  // 只序列化非null的属性，null值就忽略掉这个属性
@JsonInclude(JsonInclude.Include.NON_EMPTY)  // 只序列化非null的属性，null值就忽略掉这个属性
public class User {

    private Integer id;
    // 在json序列化的时候，单独指定的别名
    @JsonProperty("username")
    private String name;
    // 排除这个属性的序列化
    // 前端传递的时候不接收这个属性，后端返回给前端时也不序列化这个属性
    @JsonIgnore
    private Integer age;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    // json序列化使用的注解
    // timezone:指定时区的 GMT+8 东八区的时间[北京时间] GMT格林威治标准时间
    @JsonFormat(pattern = "yyyy.MM.dd HH:mm:ss",timezone = "GMT+8")
    private Date birthday;
    @JsonSerialize(using = MyDoubleSerializer.class)
    private Double salary;
}
